home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Add-Ons / KeyQuencer / KQ AESend 1.0 / Read Me First < prev    next >
Encoding:
Text File  |  1997-03-18  |  7.6 KB  |  115 lines  |  [TEXT/ttxt]

  1.  
  2. KQ AESend 1.0
  3.  
  4. Written by Marco Piovanelli, <mailto:piovanel@kagi.com>
  5.  
  6.  
  7. Introduction
  8.  
  9. KQ AESend is an extension for KeyQuencer, a powerful macro utility written by Alessandro Levi Montalcini, that gives KeyQuencer macros the ability to send Apple events to any process running on your machine.
  10. Apple events are the low-level messages Macintosh applications use to talk to each other, and the basis for scripting systems like AppleScript™ and Frontier™. AESend lets advanced scripters and power users access the raw power of Apple events from KeyQuencer, without the overhead involved by a scripting system. AESend is fast and flexible, but also difficult to use for non-programmer types, because it requires a good understanding of the underpinnings of Apple events. Fortunately, you don’t need to be a programmer to take advantage of KQ AESend, as the package comes with 48 ready-to-use sample macros based entirely on this extension.
  11.  
  12.  
  13. Requirements
  14.  
  15. KQ AESend requires version 2.0 of KeyQuencer or KeyQuencer Lite, and of course, applications that can be effectively driven by Apple events. Many of the sample macros require the Scriptable Finder or some standard scripting additions, all of which are installed by default on machines running MacOS 7.5 or later.
  16.  
  17.  
  18. Sample Macros
  19.  
  20. Here’s a brief description of what some of the included macros do. Let’s start with the macros which rely on the scriptable Finder.
  21. Open with ResEdit, Open with Script Editor and Open with Style tell the Finder to open the selected items with a specific application, and are equivalent to dragging the selection onto the application icon.
  22. Open Apple Menu Items, Open Control Panels, Open Extensions, Open KQ Extensions, Open Preferences, Open Scripting Additions and Open System Folder tell the Finder to open a specific folder.
  23. Expand decodes/decompresses the selected items using StuffIt Expander™, while Stuff does the reverse operation using DropStuff™. Mount Disk Image mounts disk images using ShrinkWrap™.
  24. Add to Apple Menu puts aliases to the selected items in the Apple Menu Items folder, whereas Make Alias on Desktop creates the aliases on the desktop. Reveal Original reveals the original item the selected alias points to, and Show Original Info opens the Finder’s info window for it.
  25. Several View By macros let you change the view of a Finder’s window.
  26. Some macros are supposed to work not just with the Finder, but with any scriptable application that supports the Standard Suite of events: they include Zoom In, Zoom Out and Cycle Windows.
  27. Set Font/Size to Monaco 9 is a macro to use in conjunction with a scriptable text editor like Style or Tex-Edit Plus 2.0.
  28. Finally, there are several macros that exploit some standard scripting additions (also known as osaxen) to set the monitor depth or the speaker volume.
  29.  
  30.  
  31. Writing Your Own Macros: A Short Tutorial
  32.  
  33. This section explains the syntax used by KQ AESend to encode Apple events.
  34. The basic format is:
  35.  
  36.   AESend <target> <eventClass> <eventID> [ <keyword> <param> ]
  37.  
  38. where <target> is the creator type of the target application (e.g., MACS for the Finder, MMan for Claris Emailer, etc.), <eventClass> / <eventID> are two four-letter codes that uniquely identify the Apple event you want to send, and zero, one or more <keyword> / <param> pairs specify the parameters of the Apple event. Apple events parameters are identified by four-letter keywords as well.
  39. Here’s a trivial macro that simply quits the Finder:
  40.  
  41.   AESend MACS aevt quit
  42.  
  43. As you can see, the “quit” event is identified by the codes aevt / quit and doesn’t need any parameter. Here’s a macro that sends an event with one parameter:
  44.  
  45.   AESend MMan GURL GURL '----' mailto:president@whitehouse.gov
  46.  
  47. The codes GURL / GURL stand for the “Get URL” event, the kind sent by Internet Config when you command-click a URL in an IC-aware application. This event needs a URL in the direct parameter, which is specified by the four-letter keyword ----: since KeyQuencer interprets a double dash as the beginning of a comment, you have to quote the keyword, or you can use a single dash as a convenient shortcut, like this:
  48.  
  49.   AESend MMan GURL GURL - mailto:president@whitehouse.gov
  50.  
  51. By default, KQ AESend assumes parameters are strings, but things really get interesting when you start using object specifiers, the most common kind of parameter in modern scriptable applications that comply with the so-called Apple Event Object Model. To build an object specifier, you need the following pieces: a class ID that specifies what kind of object you’re talking about (e.g., a folder, a word or a mailbox), a key that specifies how to access that object within its container (e.g., the third one from the end, or the one named “report”) and optionally, another (nested) object specifier which identifies the container of the object you’re referring to (like “the second word of paragraph 5”).
  52. Theory apart, let’s see what object specifiers looks like in KQ AESend with a few real-world examples:
  53.  
  54.   KQ AESend              AppleScript
  55.   =========              ===========
  56.   sele•                  selection
  57.   pcli•                  clipboard
  58.   cwin[1]•               window 1
  59.   cwin[untitled]•        window "untitled"
  60.   cwin[*]•               every window
  61.   appf[_RSED]•           application file id "RSED"
  62.   cwin[1]•pnam           name of window 1
  63.   cwin[1]•cwor[1]        word 1 of window 1
  64.   cwin[1]•cwor[1]•font   font of word 1 of window 1
  65.  
  66. All object specifiers must contain at least one bullet (“•”), or they won’t be recognized as such. If the object specifier doesn’t have a container, the bullet must be the last character, while if it does, the bullet is used as a separator between nested object specifiers. When you have nested object specifiers, the outermost must appear first on the line, and the innermost last (in AppleScript, the ordering is reversed). Keys are written in brackets after the class ID: you can identify objects by index, by name or by ID. The ID key form requires an underscore character before the ID code.
  67. Since KQ AESend deals with raw events, it has no concept of dictionaries or glue tables, and figuring out the ubiquitous four-letter codes for events and object classes can be hard. Here’s a list of some common verbs (events):
  68.  
  69.   KQ AESend              AppleScript
  70.   =========              ===========
  71.   misc actv              activate
  72.   core clos              close
  73.   core crel              make
  74.   aevt odoc              open
  75.   core save              save
  76.   misc mvis              show
  77.   core setd              set
  78.   aevt quit              quit
  79.  
  80. And here’s a list of common nouns (classes and properties):
  81.  
  82.   KQ AESend              AppleScript
  83.   =========              ===========
  84.   appf                   application file
  85.   'cha '                 character
  86.   pcli                   clipboard
  87.   cRGB                   color
  88.   docu                   document
  89.   file                   file
  90.   cfol                   folder
  91.   font                   font
  92.   pidx                   index
  93.   clin                   line
  94.   pnam                   name
  95.   cpar                   paragraph
  96.   sele                   selection
  97.   ptsz                   size
  98.   ctxt                   text
  99.   cwin                   window
  100.   cwor                   word
  101.  
  102.  
  103. Distribution
  104.  
  105. KQ AESend is freeware: you may use it free of charge and give it to others, but you may not distribute altered copies. Publishers can include KQ AESend in floppy and CD-ROM shareware collections without having to notify me.
  106.  
  107.  
  108. About KeyQuencer
  109.  
  110. KeyQuencer was written by Alessandro Levi Montalcini and is published by Binary Software, Inc.:
  111.  
  112.   <http://www.binarysoft.com>
  113.   <mailto:keyquencer@binarysoft.com>
  114.  
  115. KeyQuencer Lite is a stripped-down, US$ 20 shareware version of KeyQuencer.